package org.dromara.lessor.domain.bo;

import org.dromara.lessor.domain.House;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 房源信息业务对象 hr_house
 *
 * @author Lion Li
 * @date 2025-09-01
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = House.class, reverseConvertGenerate = false)
public class HouseBo extends BaseEntity {

    /**
     * 房源ID
     */
    private Long id;

    /**
     * 出租方ID
     */
    private Long lessorId;

    /**
     * 业务员id
     */
    private Long saleId;

    /**
     * 房产证照片路径
     */
    private String propertyCertPhoto;

    /**
     * 房产号
     */
    private String propertyNumber;

    /**
     * 房屋封面url
     */
    private String houseUrl;

    /**
     * 房屋状态: 待审核,通过,驳回
     */
    private String houseStatus;

    /**
     * 是否上架（Y:上架、N:下架）
     */
    private String isLaunch;

    /**
     * 身份证照片路径
     */
    private String idCardPhoto;

    /**
     * 姓名
     */
    private String ownerName;

    /**
     * 身份证号
     */
    private String idCardNumber;

    /**
     * 省
     */
    private String province;

    /**
     * 市
     */
    private String city;

    /**
     * 详细地址
     */
    private String address;

    /**
     * 租房类型: 房屋,写字楼,厂房
     */
    private String rentalType;

    /**
     * 楼盘名称
     */
    private String estateName;

    /**
     * 门牌号
     */
    private String houseNumber;

    /**
     * 楼层
     */
    private Long floor;

    /**
     * 房屋面积
     */
    private String houseArea;

    /**
     * 朝向
     */
    private String houseOrientation;

    /**
     * 房屋户型
     */
    private Long houseLayoutId;

    /**
     * 电器
     */
    private String electricalIds;

    /**
     * 合同开始日期
     */
    private Date contractStartDate;

    /**
     * 合同结束日期
     */
    private Date contractEndDate;

    /**
     * 合同照片路径
     */
    private String contractPhoto;

    /**
     * 合同状态: 待审核,通过,驳回
     */
    private String contractStatus;

    /**
     * 房源照片路径(多个用逗号分隔)
     */
    private String housePhotos;

    /**
     * 租金(每期价格)
     */
    private BigDecimal rent;

    /**
     * 租期: 3,6,9,12个月
     */
    private Long leaseTerm;

    /**
     * 开始时间
     */
    private Date startDate;

    /**
     * 订单模式: 6个月(垫资)
     */
    private String orderMode;

    /**
     * 代扣模式: 蚂蚁链,周期扣,免押+周期扣
     */
    private String deductionMode;

    /**
     * 押金
     */
    private BigDecimal deposit;

    /**
     * 租客身份证正面照片
     */
    private String tenantIdCardFront;

    /**
     * 租客身份证反面照片
     */
    private String tenantIdCardBack;

    /**
     * 租客身份证号码
     */
    private String tenantIdCardNumber;

    /**
     * 租客手机号
     */
    private String tenantPhone;

    /**
     * 租客签约合同路径
     */
    private String tenantContract;

    /**
     * 租客支付宝蚂蚁信用分截图
     */
    private String tenantAlipayCredit;

    /**
     * 房东打款视频路径
     */
    private String landlordPaymentVideo;

    /**
     * 非房东本人代理委托书路径
     */
    private String nonLandlordPayment;

    /**
     * 无代理委托书（视频能体现4笔或1年长期打款记录）
     */
    private String longTermPaymentProof;

    /**
     * 备注
     */
    private String remark;

    /**
     * 订单状态
     */
    private String orderStatus;
}
